from pydantic import (
    BaseModel,
    Extra,
)

from my_typing import *
from utils.validator_utils.pydantic_validator.errors import error_msg_templates_zh_cn


class BaseModelV1(BaseModel):
    """ 模型基类 """

    class Config:
        """
        模型配置

        - Doc: https://docs.pydantic.dev/1.10/usage/model_config/
        """

        extra: Literal["ignore", "allow", "forbid"] = Extra.ignore.value
        """
        是否允许额外的字段

        - ignore: 忽略（有额外的字段不会报错，但也不会保存）
        - allow: 允许（允许保存额外的字段）
        - forbid: 禁止（有额外的字段，就会报错）
        """

        error_msg_templates: DictStrStr = error_msg_templates_zh_cn
        """ 错误消息模板 """
